class Account < ActiveRecord::Base
  # Questa direttiva serve per far funzionare l'autenticazione
  acts_as_authentic

  # Qui diciamo che l'account appartiene ad un "astratto" :user, polimorfico
  # vuol dire che esso potra essere, Customer, Pizzeria etc, vedi anche le altre
  # classi!
  belongs_to :user, :polymorphic => true

  # Queste sono i vincoli per gli attributi delle tabelle dell'utente
  validates_uniqueness_of :login, :message => "Il tuo login scelto e' gia' in uso!"
  validates_uniqueness_of :email, :message => "Risulti gia' registrato con questo indirizzo email!"
  validates_presence_of :login, :email
  # Questa espressione regolare, non so come, ma dovrebbe validare l'indirizzo email!
  validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i

  def role_symbols
    return [ self.user_type.underscore.to_sym]
  end
end
